const momentServeice = require("../service/moment.serveice")

class MomentController {
    async create(ctx, next) {
        // 1.获取文章内容
        const { content } = ctx.request.body
        // 2.动态由谁发布
        const { id } = ctx.user
        // console.log(content, id)

        // 3.将动态相关的数据保存在数据库
        const result = await momentServeice.created(content, id)

        ctx.body = {
            code: 0,
            message: '发表动态成功!!',
            data: result
        }
    }
    async list(ctx, next) {
        // 获取offset，size
        const { offset, size } = ctx.query
        // 获取全部数据
        const result = await momentServeice.queryList(offset, size)
        ctx.body = {
            code: 0,
            message: '查询成功',
            data: result

        }
    }
    async detail(ctx, next) {
        // 获取id
        const { momentId } = ctx.params
        // console.log(momentId)
        const result = await momentServeice.queryParams(momentId)
        ctx.body = {
            code: 0,
            message: '查询成功',
            data: result[0]

        }
    }
    async updated(ctx, next) {
        // 获取id
        const { momentId } = ctx.params
        // console.log(momentId)
        // 获取要修改的content
        const { content } = ctx.request.body
        const result = await momentServeice.updated(momentId, content)
        ctx.body = {
            code: 0,
            message: '修改动态成功',
            data: result
        }
    }
    async remove(ctx, next) {
        const { momentId } = ctx.params
        const result = await momentServeice.remove(momentId)
        ctx.body = {
            code: 0,
            message: '删除动态成功',
            data: result
        }
    }
    // 为moment添加label
    async addLabels(ctx, next) {
        // 1.获取一些参数
        const { labels } = ctx
        const { momentId } = ctx.params
        // console.log(labels)
        // 2.将moment_id与label_id添加到关系表
        try {
            for (const label of labels) {
                // 2.1如果已经存在关系数据
                const isExits = await momentServeice.hasLabel(momentId, label.id)
                console.log('isExits', isExits)
                if (!isExits) {
                    // 不存在关系数据，添加
                    const result = await momentServeice.addLabel(momentId, label.id)
                }
            }
            ctx.body = {
                code: 0,
                message: '为动态添加标签成功',
            }
        } catch (error) {
            ctx.body = {
                code: -3001,
                message: '添加失败~检查数据~~',
                error: error
            }
        }

    }
}
module.exports = new MomentController